﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;

namespace ProjectDirector.Domain.Entities
{
    [MetadataType(typeof(EmployeeMetadata))]
    public partial class Employee
    {
        public class EmployeeMetadata
        {
            [Display(Name = "Title")]
            [Required(ErrorMessage="Title is required field")]
            public int TitleId { get; set; }

            [Display(Name = "First Name")]
            [Required(ErrorMessage = "First name is required field")]
            public string FirstName { get; set; }

            [Display(Name = "Last Name")]
            [Required(ErrorMessage = "Last name name is required field")]
            public string LastName { get; set; }

            [Display(Name = "Job Title")]
            [Required(ErrorMessage = "Job title is required field")]
            public int JobTitleId { get; set; }

            [Display(Name = "Start Date")]
            [DataType(DataType.Date)]
            [Required(ErrorMessage = "Start date is required field")]
            public DateTime StartDate { get; set; }

            [Display(Name = "Finish Date")]
            [DataType(DataType.Date)]           
            public DateTime FinishDate { get; set; }

            [Display(Name = "Contract Type")]
            [Required(ErrorMessage = "Contract type is required field")]
            public int ContractTypeId  { get; set; }

            [Display(Name = "Mobile Phone")]            
            public string MobilePhone { get; set; }

            [Display(Name = "Work Phone")]            
            public string WorkPhone { get; set; }

            [Display(Name = "Work Email")]            
            [DataType(DataType.EmailAddress)]
            [Required(ErrorMessage = "Work email is required field")]
            public string WorkEmail { get; set; }

            [Display(Name = "Private Email")]            
            [DataType(DataType.EmailAddress)]
            [Required(ErrorMessage = "Private email is required field")]
            public string PrivateEmail { get; set; }           
        }
    }
}
